package com.ruoyi.delivery.mapper;

import com.ruoyi.delivery.domain.DelTransportDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DelTransportDetailMapper {

    /**
     * 根据 trackingNumber 获取所有运单明细
     * @param trackingNumber 运单号
     * @return 运单明细列表
     */
    List<DelTransportDetail> getDetailsByTrackingNumber(@Param("trackingNumber") String trackingNumber);

    List<DelTransportDetail> getDetailsByOrderNumber(@Param("orderNumber") String orderNumber);

    /**
     * 插入运单明细
     * @param detail 运单明细对象
     * @return 影响的行数
     */
    int insertTransportDetail(DelTransportDetail detail);

    /**
     * 删除运单明细
     * @param transportDetailId 运单明细编号
     * @return 影响的行数
     */
    int deleteTransportDetail(@Param("transportDetailId") String transportDetailId);

    /**
     * 修改运单明细
     * @param detail 运单明细对象
     * @return 影响的行数
     */
    int updateTransportDetail(DelTransportDetail detail);

    /**
     * 筛选运单明细
     * @param trackingNumber
     * @param productName 商品名称
     * @param orderNumber 订单号
     * @param productBatch 商品批次
     * @return 符合条件的运单明细列表
     */
    List<DelTransportDetail> searchTransportDetails (
            @Param("trackingNumber") String trackingNumber,
            @Param("productName") String productName,
            @Param("orderNumber") String orderNumber,
            @Param("productBatch") String productBatch
    );
}
